This invention relates to computerized simulation of natural language conversations.
A chat bot (or robot) is a computer server or other computerized device that can carry on a conversation with a human. A famous early example was Joseph Weizenbaum's 1966 program called ELIZA. A (human) user could type in English language statements to the program, and ELIZA would simulate a Rogerian psychotherapist in its responses.
More advanced chat bots have competed to try to pass the Turing Test for artificial intelligence. The idea is to create a chat bot that simulate human conversation so well that a human is not sure whether he is talking to a computer or another human.
A popular language for creating chat bots is the Artificial Intelligence Markup Language (AIML). AIML is an XML dialect for creating natural language software agents. With AIML, one can program a computer to give a specified set of answers to a specified set of questions. More generally, it can recognize patterns in the user statements and questions, and then give appropriate responses. It can also recognize topics of conversation, and respond with something related to the current topic. AIML is an open standard, and there are many AIML implementations and chat bots. AIML is described in U.S. Pat. Nos. 7,305,372, 7,337,157, and 7,505,892.
The basic unit of knowledge in AIML is known, for historical reasons, as a “category”. A category is a rule in the sense of a production system. The AIML category or rule consists of at least two components, an input-side pattern and an output-side template. When natural language input matches the input pattern, AIML activates the output template. In the simplest form the output template consists of a natural language response. The term “template” is used because in addition to the natural language reply, the response may optionally contain additional AIML code, some of which may optionally activate other patterns in other categories by recursion. The recursive feature of AIML is sometimes called “symbolic reduction” and is abbreviated as “srai” (symbolic reduction artificial intelligence).
The person who creates or trains a chat bot is called the botmaster.
A good AIML chat bot might be 50,000 lines of code, and requires many man-months to write from scratch. One AIML chat bot might be adapted from another, but a lot of (human) work is usually required to add significant content or to make any significant changes to the bot's personality.
There is also a need for chat bot creation methods that are not so labor intensive.